www.gusucode.com > VC++ 宾馆管理系统(MSSQL) > VC++ 宾馆管理系统(MSSQL)/gusucode/Code/BookInDLG.cpp
//Download by http://www.NewXing.com // BookInDLG.cpp : implementation file #include "stdafx.h" #include "hotel_mis.h" #include "BookInDLG.h" #include "Hotel_MISView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CBookInDLG dialog CBookInDLG::CBookInDLG(CWnd* pParent /*=NULL*/) : CDialog(CBookInDLG::IDD, pParent) { //{{AFX_DATA_INIT(CBookInDLG) m_sRoomNo = _T(""); m_sRoomType = _T(""); m_sRoomPosition = _T(""); m_sRoomPrice = _T(""); m_sRoomMemo = _T(""); m_sName = _T(""); m_sID = _T(""); m_tInDAte = COleDateTime::GetCurrentTime(); m_sDiscount = _T(""); m_sMemo = _T(""); //}}AFX_DATA_INIT } void CBookInDLG::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CBookInDLG) DDX_CBString(pDX, IDD_BOOKIN_ROOMNO, m_sRoomNo); DDX_Text(pDX, IDD_BOOKIN_ROOMTYPE, m_sRoomType); DDX_Text(pDX, IDD_BOOKIN_ROOMPOSITION, m_sRoomPosition); DDX_Text(pDX, IDD_BOOKIN_ROOMPRICE, m_sRoomPrice); DDX_Text(pDX, IDD_BOOKIN_ROOMMEMO, m_sRoomMemo); DDX_Text(pDX, IDD_BOOKIN_NAME, m_sName); DDX_Text(pDX, IDD_BOOKIN_ID, m_sID); DDX_DateTimeCtrl(pDX, IDD_BOOKIN_INDATE, m_tInDAte); DDX_Text(pDX, IDD_BOOKIN_DISCOUNT, m_sDiscount); DDX_Text(pDX, IDD_BOOKIN_MEMO, m_sMemo); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CBookInDLG, CDialog) //{{AFX_MSG_MAP(CBookInDLG) ON_CBN_SELCHANGE(IDD_BOOKIN_ROOMNO, OnRoomNoSelChange) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CBookInDLG message handlers BOOL CBookInDLG::OnInitDialog() { CDialog::OnInitDialog(); ((CEdit*)GetDlgItem(IDD_BOOKIN_NAME))->SetLimitText(20); ((CEdit*)GetDlgItem(IDD_BOOKIN_ID))->SetLimitText(18); // TODO: Add extra initialization here if (m_bAppend) { // Update Dialog Caption SetWindowText(_T("添加订房信息")); // Init Combobox _variant_t strQuery, Holder; strQuery = "select * from rooms where putup=0 or putup is NULL"; theApp.ADOExecute(theApp.m_pADOSet, strQuery); int iCount = theApp.m_pADOSet->GetRecordCount(); theApp.m_pADOSet->MoveFirst(); for (int i=0; i<iCount; i++) { Holder = theApp.m_pADOSet->GetCollect("roomNo"); ((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->InsertString(i, Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder); // Get other onfo to display if ( 0==i ) { // Get RoomType Holder = theApp.m_pADOSet->GetCollect("roomtype"); m_sRoomType = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; // Get roomposition Holder = theApp.m_pADOSet->GetCollect("roomposition"); m_sRoomPosition = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; // Get roomprice Holder = theApp.m_pADOSet->GetCollect("roomprice"); m_sRoomPrice.Format("%.2f", Holder.dblVal); // Get roommemo Holder = theApp.m_pADOSet->GetCollect("roommemo"); m_sRoomMemo = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; } theApp.m_pADOSet->MoveNext(); } ((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->SetCurSel(0); } else { // Get Old ID and RoomNo m_sOldID = m_sID; m_sOldRoomNo = m_sRoomNo; // Update Dialog Caption SetWindowText(_T("修改订房信息")); // Init Combobox _variant_t strQuery, Holder; CString str; int iSel = 0; strQuery = "select * from rooms where putup=0 or putup is NULL"; theApp.ADOExecute(theApp.m_pADOSet, strQuery); int iCount = theApp.m_pADOSet->GetRecordCount(); theApp.m_pADOSet->MoveFirst(); for (int i=0; i<iCount; i++) { Holder = theApp.m_pADOSet->GetCollect("roomNo"); str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; ((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->InsertString(i, str); // Get other onfo to display if ( str==m_sRoomNo ) { // Get RoomType Holder = theApp.m_pADOSet->GetCollect("roomtype"); m_sRoomType = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; // Get roomposition Holder = theApp.m_pADOSet->GetCollect("roomposition"); m_sRoomPosition = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; // Get roomprice Holder = theApp.m_pADOSet->GetCollect("roomprice"); m_sRoomPrice.Format("%.2f", Holder.dblVal); // Get roommemo Holder = theApp.m_pADOSet->GetCollect("roommemo"); m_sRoomMemo = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; iSel = i; } theApp.m_pADOSet->MoveNext(); } ((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->SetCurSel(iSel); } UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CBookInDLG::OnRoomNoSelChange() { // TODO: Add your control notification handler code here UpdateData(true); _variant_t strQuery, Holder; strQuery = "select * from rooms where roomNO='"+m_sRoomNo+"'"; theApp.ADOExecute(theApp.m_pADOSet, strQuery); // Get RoomType Holder = theApp.m_pADOSet->GetCollect("roomtype"); m_sRoomType = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; // Get roomposition Holder = theApp.m_pADOSet->GetCollect("roomposition"); m_sRoomPosition = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; // Get roomprice Holder = theApp.m_pADOSet->GetCollect("roomprice"); m_sRoomPrice.Format("%.2f", Holder.dblVal); // Get roommemo Holder = theApp.m_pADOSet->GetCollect("roommemo"); m_sRoomMemo = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder; UpdateData(false); } void CBookInDLG::OnOK() { // TODO: Add extra validation here UpdateData(true); m_sName.TrimRight(" "); m_sID.TrimRight(" "); m_sDiscount.TrimRight(" "); m_sMemo.TrimLeft(" "); // Make sure all needed info is available CString sWarning=""; if ( ""==m_sName ) sWarning=_T("顾客姓名"); else if ( ""==m_sID ) sWarning=_T("身份证号码"); else if ( ""==m_sDiscount ) sWarning=_T("折扣"); if ( ""!=sWarning ) { sWarning += _T("不能为空"); AfxMessageBox(sWarning, MB_ICONEXCLAMATION); return; } float fDiscount=atof(m_sDiscount); if ( 0==fDiscount ) { AfxMessageBox(_T("折扣:请输入非零数字"), MB_ICONEXCLAMATION); return; } m_sDiscount.Format("%.2f", fDiscount); if ( fDiscount>100 ) { AfxMessageBox(_T("折扣溢出,请不要超过100"), MB_ICONEXCLAMATION); return; } _variant_t strQuery; // Delete Old Record if ( !m_bAppend ) { strQuery = "delete from bookin where customID='"+m_sOldID+"' and roomno='"+m_sOldRoomNo+"'"; theApp.ADOExecute(theApp.m_pADOSet, strQuery); } // Check Record Unique strQuery = "select * from bookin where roomno='"+m_sRoomNo+"'"; theApp.ADOExecute(theApp.m_pADOSet, strQuery); int iCount = theApp.m_pADOSet->GetRecordCount(); if ( 0!=iCount ) { AfxMessageBox(_T("该房间已经登记入住!"), MB_ICONEXCLAMATION); return; } // Generate Serial No. CString sSN; COleDateTime today = COleDateTime::GetCurrentTime(); sSN = today.Format("%y%m%d%H%M%S"); // Get Indate CString sInDate; sInDate = m_tInDAte.Format("%Y-%m-%d"); // Insert Record strQuery = "insert bookin (bookno, customname, customID, roomno, indate, discount, inmemo) \ values ('"+sSN+"', '"+m_sName+"', '"+m_sID+"', '"+m_sRoomNo+"', '"+sInDate+"', "+m_sDiscount+", '"+m_sMemo+"')"; if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) { if ( m_bAppend ) { AfxMessageBox(_T("添加记录成功!"), MB_ICONINFORMATION); // Clear All Input m_sName=m_sID=m_sDiscount=m_sMemo=""; ((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->SetCurSel(0); UpdateData(false); //Update Room Info strQuery = "update rooms set putup=1 where roomNo='"+m_sRoomNo+"'"; theApp.ADOExecute(theApp.m_pADOSet, strQuery); } else AfxMessageBox(_T("修改记录成功!"), MB_ICONINFORMATION); } else { if ( m_bAppend ) AfxMessageBox(_T("添加记录失败!"), MB_ICONEXCLAMATION); else AfxMessageBox(_T("修改记录失败!"), MB_ICONEXCLAMATION); } // Refresh BookIn List strQuery = "select * from bookin where checkdate is NULL"; CHotel_MISView* p = (CHotel_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView()); p->RefreshBookIn(strQuery); if (!m_bAppend) CDialog::OnOK(); }